#include<iostream>

int divide(int a, int b)
{
    if(b==0)
        throw"b 是 0  !!";

    if(b==1)
        throw 1;
    if(b==2)
        throw 2.1;
    if(b==3)
        throw &b;
    return a / b;
}


int main()
{
    try
    {
        // int c =divide(9,0);
        // int c =divide(9,1);
        // int c =divide(9,2);
        int c =divide(9,3);    
    }
    //捕获某种数据类型的异常：严格匹配
    catch(const char*s)
    {
        std::cout <<"捕获到字符串异常:"<< s << '\n';
    }
    
    // 多分支捕获异常
    catch(int a)
    {
        std::cout <<"捕获到整型异常:"<< a << '\n';
    }

    catch(double a)
    {
        std::cout <<"捕获到浮点异常:"<< a << '\n';
    }

    catch(...)//捕获所有其他类型的异常
    {
        std::cout <<"捕获到其他异常"<<'\n';
    }
    return 0;
}